<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en-US">
<head>
<!-- GenHTML revision 25226-->
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Web Applications - The Java EE 6 Tutorial</title>
<meta name="robots" content="index,follow">
<meta name="robots" content="index,follow">
<meta name="date" content="2011-03-01">
<link rel="stylesheet" type="text/css" href="css/default.css">
<link rel="stylesheet" type="text/css" href="css/ipg.css">
<link rel="stylesheet" type="text/css" href="css/javaeetutorial.css">
</head>

<body>

<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tbody>
   <tr valign="top">
      <td width="400px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
<p class="toc level1 tocsp"><a href="gexaf.html">Preface</a></p>
<p class="toc level1 tocsp"><a href="gfirp.html">Part&nbsp;I&nbsp;Introduction</a></p>
<p class="toc level2"><a href="bnaaw.html">1.&nbsp;&nbsp;Overview</a></p>
<p class="toc level2"><a href="gfiud.html">2.&nbsp;&nbsp;Using the Tutorial Examples</a></p>
<p class="toc level1 tocsp"><a href="bnadp.html">Part&nbsp;II&nbsp;The Web Tier</a></p>
<p class="toc level2"><a href="bnadr.html">3.&nbsp;&nbsp;Getting Started with Web Applications</a></p>
<div id="scrolltoc" class="onpage">
<p class="toc level3"><a href="">Web Applications</a></p>
</div>
<p class="toc level3"><a href="bnadu.html">Web Application Lifecycle</a></p>
<p class="toc level3"><a href="bnadx.html">Web Modules: The <tt>hello1</tt> Example</a></p>
<p class="toc level4"><a href="bnadx.html#gjwux">Examining the <tt>hello1</tt> Web Module</a></p>
<p class="toc level5"><a href="bnadx.html#gjwtv">To View the <tt>hello1</tt> Web Module Using NetBeans IDE</a></p>
<p class="toc level4 tocsp"><a href="bnadx.html#bnadz">Packaging a Web Module</a></p>
<p class="toc level5"><a href="bnadx.html#bnaeb">To Set the Context Root</a></p>
<p class="toc level5"><a href="bnadx.html#gjrgn">To Build and Package the <tt>hello1</tt> Web Module Using  NetBeans IDE</a></p>
<p class="toc level5"><a href="bnadx.html#gjrkn">To Build and Package the <tt>hello1</tt> Web Module Using Ant</a></p>
<p class="toc level4 tocsp"><a href="bnadx.html#bnaea">Deploying a Web Module</a></p>
<p class="toc level5"><a href="bnadx.html#bnaeg">To Deploy the <tt>hello1</tt> Web Module Using NetBeans IDE</a></p>
<p class="toc level5"><a href="bnadx.html#bnaef">To Deploy the <tt>hello1</tt> Web Module Using Ant</a></p>
<p class="toc level4 tocsp"><a href="bnadx.html#gentextid-1814">Running a Deployed Web Module</a></p>
<p class="toc level5"><a href="bnadx.html#bnaeh">To Run a Deployed Web Module</a></p>
<p class="toc level4 tocsp"><a href="bnadx.html#bnaei">Listing Deployed Web Modules</a></p>
<p class="toc level5"><a href="bnadx.html#gjsgr">To List Deployed Web Modules Using the Administration Console</a></p>
<p class="toc level5"><a href="bnadx.html#gjsew">To List Deployed Web Modules Using the <tt>asadmin</tt> Command</a></p>
<p class="toc level4 tocsp"><a href="bnadx.html#gkbkv">Updating a Web Module</a></p>
<p class="toc level5"><a href="bnadx.html#bnaej">To Update a Deployed Web Module</a></p>
<p class="toc level4 tocsp"><a href="bnadx.html#bnaem">Dynamic Reloading</a></p>
<p class="toc level5"><a href="bnadx.html#gjsgv">To Disable or Modify Dynamic Reloading</a></p>
<p class="toc level4 tocsp"><a href="bnadx.html#bnaen">Undeploying Web Modules</a></p>
<p class="toc level5"><a href="bnadx.html#gjsej">To Undeploy the <tt>hello1</tt> Web Module Using NetBeans IDE</a></p>
<p class="toc level5"><a href="bnadx.html#gjshh">To Undeploy the <tt>hello1</tt> Web Module Using Ant</a></p>
<p class="toc level3 tocsp"><a href="bnaeo.html">Configuring Web Applications: The <tt>hello2</tt> Example</a></p>
<p class="toc level4"><a href="bnaeo.html#bnaep">Mapping URLs to Web Components</a></p>
<p class="toc level4"><a href="bnaeo.html#gjwwg">Examining the <tt>hello2</tt> Web Module</a></p>
<p class="toc level5"><a href="bnaeo.html#gjwwa">To View the <tt>hello2</tt> Web Module Using NetBeans IDE</a></p>
<p class="toc level4 tocsp"><a href="bnaeo.html#gkblh">Building, Packaging, Deploying, and Running the <tt>hello2</tt> Example</a></p>
<p class="toc level5"><a href="bnaeo.html#gjsed">To Build, Package, Deploy, and Run the <tt>hello2</tt> Example Using NetBeans IDE</a></p>
<p class="toc level5"><a href="bnaeo.html#gjshx">To Build, Package, Deploy, and Run the <tt>hello2</tt> Example Using Ant</a></p>
<p class="toc level4 tocsp"><a href="bnaeo.html#bnaer">Declaring Welcome Files</a></p>
<p class="toc level4"><a href="bnaeo.html#bnaes">Setting Context and Initialization Parameters</a></p>
<p class="toc level5"><a href="bnaeo.html#gjsfj">To Add a Context Parameter Using NetBeans IDE</a></p>
<p class="toc level5"><a href="bnaeo.html#gkihh">To Create a <tt>web.xml</tt> File Using NetBeans IDE</a></p>
<p class="toc level5"><a href="bnaeo.html#gjsdy">To Add an Initialization Parameter Using NetBeans IDE</a></p>
<p class="toc level4 tocsp"><a href="bnaeo.html#gkbkw">Mapping Errors to Error Screens</a></p>
<p class="toc level5"><a href="bnaeo.html#bnaet">To Set Up Error Mapping Using NetBeans IDE</a></p>
<p class="toc level4 tocsp"><a href="bnaeo.html#bnaeu">Declaring Resource References</a></p>
<p class="toc level5"><a href="bnaeo.html#bnaew">Declaring a Reference to a Resource</a></p>
<p class="toc level5"><a href="bnaeo.html#bnaex">Declaring a Reference to a Web Service</a></p>
<p class="toc level3 tocsp"><a href="bnafc.html">Further Information about Web Applications</a></p>
<p class="toc level2 tocsp"><a href="bnaph.html">4.&nbsp;&nbsp;JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="giepx.html">5.&nbsp;&nbsp;Introduction to Facelets</a></p>
<p class="toc level2"><a href="gjddd.html">6.&nbsp;&nbsp;Expression Language</a></p>
<p class="toc level2"><a href="bnaqz.html">7.&nbsp;&nbsp;Using JavaServer Faces Technology in Web Pages</a></p>
<p class="toc level2"><a href="gjcut.html">8.&nbsp;&nbsp;Using Converters, Listeners, and Validators</a></p>
<p class="toc level2"><a href="bnatx.html">9.&nbsp;&nbsp;Developing with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkmaa.html">10.&nbsp;&nbsp;JavaServer Faces Technology Advanced Concepts</a></p>
<p class="toc level2"><a href="bnawo.html">11.&nbsp;&nbsp;Configuring JavaServer Faces Applications</a></p>
<p class="toc level2"><a href="gkiow.html">12.&nbsp;&nbsp;Using Ajax with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkhxa.html">13.&nbsp;&nbsp;Advanced Composite Components</a></p>
<p class="toc level2"><a href="bnavg.html">14.&nbsp;&nbsp;Creating Custom UI Components</a></p>
<p class="toc level2"><a href="bnafd.html">15.&nbsp;&nbsp;Java Servlet Technology</a></p>
<p class="toc level2"><a href="bnaxu.html">16.&nbsp;&nbsp;Internationalizing and Localizing Web Applications</a></p>
<p class="toc level1 tocsp"><a href="bnayk.html">Part&nbsp;III&nbsp;Web Services</a></p>
<p class="toc level2"><a href="gijti.html">17.&nbsp;&nbsp;Introduction to Web Services</a></p>
<p class="toc level2"><a href="bnayl.html">18.&nbsp;&nbsp;Building Web Services with JAX-WS</a></p>
<p class="toc level2"><a href="giepu.html">19.&nbsp;&nbsp;Building RESTful Web Services with JAX-RS</a></p>
<p class="toc level2"><a href="gjjxe.html">20.&nbsp;&nbsp;Advanced JAX-RS Features</a></p>
<p class="toc level2"><a href="gkojl.html">21.&nbsp;&nbsp;Running the Advanced JAX-RS Example Application</a></p>
<p class="toc level1 tocsp"><a href="bnblr.html">Part&nbsp;IV&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijsz.html">22.&nbsp;&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijre.html">23.&nbsp;&nbsp;Getting Started with Enterprise Beans</a></p>
<p class="toc level2"><a href="gijrb.html">24.&nbsp;&nbsp;Running the Enterprise Bean Examples</a></p>
<p class="toc level2"><a href="bnbpk.html">25.&nbsp;&nbsp;A Message-Driven Bean Example</a></p>
<p class="toc level2"><a href="gkcqz.html">26.&nbsp;&nbsp;Using the Embedded Enterprise Bean Container</a></p>
<p class="toc level2"><a href="gkidz.html">27.&nbsp;&nbsp;Using Asynchronous Method Invocation in Session Beans</a></p>
<p class="toc level1 tocsp"><a href="gjbnr.html">Part&nbsp;V&nbsp;Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="giwhb.html">28.&nbsp;&nbsp;Introduction to Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="gjbls.html">29.&nbsp;&nbsp;Running the Basic Contexts and Dependency Injection Examples</a></p>
<p class="toc level2"><a href="gjehi.html">30.&nbsp;&nbsp;Contexts and Dependency Injection for the Java EE Platform: Advanced Topics</a></p>
<p class="toc level2"><a href="gkhre.html">31.&nbsp;&nbsp;Running the Advanced Contexts and Dependency Injection Examples</a></p>
<p class="toc level1 tocsp"><a href="bnbpy.html">Part&nbsp;VI&nbsp;Persistence</a></p>
<p class="toc level2"><a href="bnbpz.html">32.&nbsp;&nbsp;Introduction to the Java Persistence API</a></p>
<p class="toc level2"><a href="gijst.html">33.&nbsp;&nbsp;Running the Persistence Examples</a></p>
<p class="toc level2"><a href="bnbtg.html">34.&nbsp;&nbsp;The Java Persistence Query Language</a></p>
<p class="toc level2"><a href="gjitv.html">35.&nbsp;&nbsp;Using the Criteria API to Create Queries</a></p>
<p class="toc level2"><a href="gkjiq.html">36.&nbsp;&nbsp;Creating and Using String-Based Criteria Queries</a></p>
<p class="toc level2"><a href="gkjjf.html">37.&nbsp;&nbsp;Controlling Concurrent Access to Entity Data with Locking</a></p>
<p class="toc level2"><a href="gkjia.html">38.&nbsp;&nbsp;Improving the Performance of Java Persistence API Applications By Setting a Second-Level Cache</a></p>
<p class="toc level1 tocsp"><a href="gijrp.html">Part&nbsp;VII&nbsp;Security</a></p>
<p class="toc level2"><a href="bnbwj.html">39.&nbsp;&nbsp;Introduction to Security in the Java EE Platform</a></p>
<p class="toc level2"><a href="bncas.html">40.&nbsp;&nbsp;Getting Started Securing Web Applications</a></p>
<p class="toc level2"><a href="bnbyk.html">41.&nbsp;&nbsp;Getting Started Securing Enterprise Applications</a></p>
<p class="toc level1 tocsp"><a href="gijue.html">Part&nbsp;VIII&nbsp;Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="gijto.html">42.&nbsp;&nbsp;Introduction to Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="bncih.html">43.&nbsp;&nbsp;Transactions</a></p>
<p class="toc level2"><a href="bncjh.html">44.&nbsp;&nbsp;Resource Connections</a></p>
<p class="toc level2"><a href="bncdq.html">45.&nbsp;&nbsp;Java Message Service Concepts</a></p>
<p class="toc level2"><a href="bncgv.html">46.&nbsp;&nbsp;Java Message Service Examples</a></p>
<p class="toc level2"><a href="gkahp.html">47.&nbsp;&nbsp;Advanced Bean Validation Concepts and Examples</a></p>
<p class="toc level2"><a href="gkeed.html">48.&nbsp;&nbsp;Using Java EE Interceptors</a></p>
<p class="toc level1 tocsp"><a href="gkgjw.html">Part&nbsp;IX&nbsp;Case Studies</a></p>
<p class="toc level2"><a href="gkaee.html">49.&nbsp;&nbsp;Duke's Tutoring Case Study Example</a></p>
<p class="toc level1 tocsp"><a href="idx-1.html">Index</a></p>
</td>
      <td width="10px">&nbsp;</td>
      <td>
         <div class="header">
             <div class="banner">
                <table width="100%" border="0" cellpadding="5" cellspacing="0">
                   <tbody>
                      <tr>
                         <td valign="bottom"><p class="Banner">The Java EE 6 Tutorial
</p></td>
                         <td align="right"  valign="bottom"><img src="graphics/javalogo.png" alt="Java Coffee Cup logo"></td>
                      </tr>
                   </tbody>
                </table>
             </div>

             <div class="header-links">
	         <a href="./index.html">Home</a> | 
<a href="../information/download.html">Download</a> | 
<a href="./javaeetutorial6.pdf">PDF</a> | 
<a href="../information/faq.html">FAQ</a> | 
<a href="http://download.oracle.com/javaee/feedback.htm">Feedback</a>

             </div>
             <div class="navigation">
                 <a href="bnadr.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
                 <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
                 <a href="bnadu.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
             </div>
         </div>

	 <div class="maincontent">      	 
             

<a name="geysj"></a><h2>Web Applications</h2>
<a name="indexterm-169"></a><a name="indexterm-170"></a><p>In the Java EE platform, <b>web components</b> provide the dynamic extension capabilities for a
web server. Web components can be Java servlets, web pages implemented with JavaServer
Faces technology, web service endpoints, or JSP pages. <a href="#bnads">Figure&nbsp;3-1</a> illustrates the interaction between a
web client and a web application that uses a servlet. The client sends
an HTTP request to the web server. A web server that implements Java
Servlet and JavaServer Pages technology converts the request into an <tt>HTTPServletRequest</tt> object.
This object is delivered to a web component, which can interact with JavaBeans
components or a database to generate dynamic content. The web component can then
generate an <tt>HTTPServletResponse</tt> or can pass the request to another web component.
A web component eventually generates a <tt>HTTPServletResponse</tt> object. The web server converts this object
to an HTTP response and returns it to the client.</p>

<a name="bnads"></a><p class="caption">Figure&nbsp;3-1 Java Web Application Request Handling</p><img src="figures/web-requestHandling.gif" alt="Diagram of web application request handling. Clients and servlets communicate using HttpServletRequest and HttpServletResponse."></img><p>Servlets are Java programming language classes that dynamically process requests and construct responses.
Java technologies, such as JavaServer Faces and Facelets, are used for building interactive
web applications. (Frameworks can also be used for this purpose.) Although servlets and
Java Server Faces and Facelets pages can be used to accomplish similar things,
each has its own strengths. Servlets are best suited for service-oriented applications (web service
endpoints can be implemented as servlets) and the control functions of a presentation-oriented
application, such as dispatching requests and handling nontextual data. Java Server Faces and
Facelets pages are more appropriate for generating text-based markup, such as XHTML, and
are generally used for presentation&ndash;oriented applications.</p>

<p><a name="indexterm-171"></a>Web components are supported by the services of a runtime platform called a
<b>web container</b>. A web container provides such services as request dispatching, security, concurrency, and
lifecycle management. A web container also gives web components access to such APIs
as naming, transactions, and email.</p>

<p><a name="indexterm-172"></a><a name="indexterm-173"></a><a name="indexterm-174"></a>Certain aspects of web application behavior can be configured when the application is
installed, or <b>deployed</b>, to the web container. The configuration information can be specified using
Java EE annotations or can be maintained in a text file in XML
format called a <b>web application deployment descriptor</b> (DD). A web application DD must conform to
the schema described in the Java Servlet specification.</p>

<p>This chapter gives a brief overview of the activities involved in developing web
applications. First, it summarizes the web application lifecycle and explains how to package
and deploy very simple web applications on the GlassFish Server. The chapter moves
on to configuring web applications and discusses how to specify the most commonly
used configuration parameters.</p>


         </div>
         <div class="navigation">
             <a href="bnadr.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
             <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
             <a href="bnadu.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
         </div>

         <div class="copyright">
      	    <p>Copyright &copy; 2011, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></p>
      	 </div>

      </td>
   </tr>
</tbody>
</table>
</body>
</html>

